home *** CD-ROM | disk | FTP | other *** search
- Notes: Forth97
-
- I am attempting to introduce FORTH multitasking into both the windowing and non-windowing versions of the kernel.
-
- At present check the PROCmultitask procedure for details of what is happeninh.
-
- Note: Processes are stored in a word that gets rotated
-
- ABCDEFGH there are eight tasks running in this case
- H will run first the back to A.
- when a task exits it deletes itself from the
- task list.
- When a new task starts it puts itself
- on the first available nibble.
-
- Process table Format
-
- Word Number | Description
- 1 | Pointer to header that holds task name
- 2 | return stack pointer for this task
- 3 | data stack pointer for this task
- 4 | FORTH instruction pointer
-
- Note: task 0 is considered to be always running ( base )
- any other task runs as a child of the Fork keyword and
- is time sliced with all other processes.
-
- All processes get equal time slices.
-
- Forth 106 onwards : 24th March 1991
-
- More processes are now runnable.. 8 in fact
-
- Working on the load routine -
- it should load a file immediately - not wait until end of the current line
- has been parsed.
-
- It will enable the forth interpreter to bootstrap the line editor, this is
- important because it will enable FULL multitasking.. including background
- tasks. incidently it will enable a user to customise the editor to
- whatever format they like.
-
- Inline: has had the load section ripped out.
-
- Forth107: 31st March 1991
-
- 8 processes runnable.
-
- Forthc now loads the inline parser from disk. ( written in forth )
-
- It now multitasks properly and has the abort etc vectors trapped so that
- accessing dodgy locations will not crash the interpreter. Note: that if
- someone actualy patched the code with a direct poke unpredictable things
- could happen. ( try the following: -1 editv ! as an example ).
-
- I am still testing the new fork command routine. it no longer scans the
- inline buffer for the task name. it now gets the command address from the
- stack.
-
- Forth110 - 15th April 1991
-
- No major changes. Just added a file depth of 7 to the load function.
- It is now possible to have multiple files that chain together.
- In the non wimp version there was/is a strange bug.
- - a file ftest would crash the wimp version of forth.
- Strange thing is the individual parts of the original did not
- cause problems. Even when nested as deep as the ftest ( 3 levels )
- I changed the ftest file and now it runs !!!!
- Other point is that it uses EXACTLY the same code as the non wimp
- version and that runs OK. got me foxed !!
- The problem doesnt exist in the NON wimp version. - I think this is
- acceptable because the wimp is only for rapid development - not for
- final production.
-